OBJ=gcc -g
#OPT= -Wall -ansi -pedantic
LibSDL=-I/usr/include/SDL -L/usr/lib -lSDL -lSDLmain -lSDL_image -lSDL_ttf -lSDL_mixer `sdl-config --libs`

all : main.o jeux.o menu.o ActionsEnnemis.o collision.o personnage.o projectiles.o terrain.o 
	$(OBJ) $(OPT) main.o jeux.o menu.o ActionsEnnemis.o collision.o personnage.o projectiles.o terrain.o -o AgentZer0 $(LibSDL)

main.o : main.c jeux.h menu.h ActionsEnnemis.h collision.h personnage.h projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) main.c $(LibSDL) 

maintest.o : maintest.c ActionsEnnemis.h collision.h personnage.h projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) maintest.c $(LibSDL) 
	
jeux.o : jeux.c jeux.h menu.h ActionsEnnemis.h collision.h personnage.h projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) jeux.c $(LibSDL)
	
ActionsEnnemis.o : ActionsEnnemis.c ActionsEnnemis.h collision.h personnage.h projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) ActionsEnnemis.c
	
collision.o : collision.c collision.h personnage.h projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) collision.c

personnage.o : personnage.c personnage.h projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) personnage.c

projectiles.o : projectiles.c projectiles.h terrain.h position.h
	$(OBJ) -c $(OPT) projectiles.c

terrain.o : terrain.c terrain.h position.h
	$(OBJ) -c $(OPT) terrain.c
	
menu.o : menu.c menu.h 
	$(OBJ) -c $(OPT) menu.c $(LibSDL)
	
clean : 
	rm *.o AgentZer0 *~

test : maintest.o ActionsEnnemis.o collision.o personnage.o projectiles.o terrain.o 
	$(OBJ) $(OPT) maintest.o ActionsEnnemis.o collision.o personnage.o projectiles.o terrain.o -o AgentZer0_test $(LibSDL)
	
gedit :
	gedit position.h terrain.h terrain.c terrain.txt projectiles.h projectiles.c personnage.h personnage.c collision.h collision.c ActionsEnnemis.h ActionsEnnemis.c maintest.c menu.h menu.c jeux.h jeux.c Makefile main.c &
	
valgrind :
	valgrind --track-origins=yes ./AgentZer0
	
full_valgrind :
	valgrind --track-origins=yes --leak-check=full --show-reachable=yes ./AgentZer0

